/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package UMASchema15.impl;

import UMASchema15.Activity;
import UMASchema15.ActivityDescription;
import UMASchema15.ApplicableMetaClassInfo;
import UMASchema15.Artifact;
import UMASchema15.ArtifactDescription;
import UMASchema15.BreakdownElement;
import UMASchema15.BreakdownElementDescription;
import UMASchema15.CapabilityPattern;
import UMASchema15.Checklist;
import UMASchema15.CompositeRole;
import UMASchema15.Concept;
import UMASchema15.Constraint;
import UMASchema15.ContentCategory;
import UMASchema15.ContentCategoryPackage;
import UMASchema15.ContentDescription;
import UMASchema15.ContentElement;
import UMASchema15.ContentPackage;
import UMASchema15.CustomCategory;
import UMASchema15.Deliverable;
import UMASchema15.DeliverableDescription;
import UMASchema15.DeliveryProcess;
import UMASchema15.DeliveryProcessDescription;
import UMASchema15.DescribableElement;
import UMASchema15.Descriptor;
import UMASchema15.DescriptorDescription;
import UMASchema15.Discipline;
import UMASchema15.DisciplineGrouping;
import UMASchema15.DocumentRoot;
import UMASchema15.Domain;
import UMASchema15.Element;
import UMASchema15.Estimate;
import UMASchema15.EstimatingMetric;
import UMASchema15.EstimationConsiderations;
import UMASchema15.Example;
import UMASchema15.Guidance;
import UMASchema15.GuidanceDescription;
import UMASchema15.Guideline;
import UMASchema15.Iteration;
import UMASchema15.Kind;
import UMASchema15.MethodConfiguration;
import UMASchema15.MethodElement;
import UMASchema15.MethodElementProperty;
import UMASchema15.MethodLibrary;
import UMASchema15.MethodPackage;
import UMASchema15.MethodPlugin;
import UMASchema15.MethodUnit;
import UMASchema15.Milestone;
import UMASchema15.NamedElement;
import UMASchema15.Outcome;
import UMASchema15.PackageableElement;
import UMASchema15.Phase;
import UMASchema15.PlanningData;
import UMASchema15.Practice;
import UMASchema15.PracticeDescription;
import UMASchema15.ProcessComponent;
import UMASchema15.ProcessComponentInterface;
import UMASchema15.ProcessDescription;
import UMASchema15.ProcessElement;
import UMASchema15.ProcessPackage;
import UMASchema15.ProcessPlanningTemplate;
import UMASchema15.Report;
import UMASchema15.ReusableAsset;
import UMASchema15.Roadmap;
import UMASchema15.Role;
import UMASchema15.RoleDescription;
import UMASchema15.RoleDescriptor;
import UMASchema15.RoleSet;
import UMASchema15.RoleSetGrouping;
import UMASchema15.Section;
import UMASchema15.SupportingMaterial;
import UMASchema15.Task;
import UMASchema15.TaskDescription;
import UMASchema15.TaskDescriptor;
import UMASchema15.TeamProfile;
import UMASchema15.Template;
import UMASchema15.TermDefinition;
import UMASchema15.Tool;
import UMASchema15.ToolMentor;
import UMASchema15.UMASchema15Factory;
import UMASchema15.UMASchema15Package;
import UMASchema15.VariabilityType;
import UMASchema15.Whitepaper;
import UMASchema15.WorkBreakdownElement;
import UMASchema15.WorkDefinition;
import UMASchema15.WorkOrder;
import UMASchema15.WorkOrderType;
import UMASchema15.WorkProduct;
import UMASchema15.WorkProductDescription;
import UMASchema15.WorkProductDescriptor;
import UMASchema15.WorkProductType;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class UMASchema15FactoryImpl extends EFactoryImpl implements UMASchema15Factory {
	/**
	 * Creates the default factory implementation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static UMASchema15Factory init() {
		try {
			UMASchema15Factory theUMASchema15Factory = (UMASchema15Factory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/epf/uma/1.0.5"); 
			if (theUMASchema15Factory != null) {
				return theUMASchema15Factory;
			}
		}
		catch (Exception exception) {
			EcorePlugin.INSTANCE.log(exception);
		}
		return new UMASchema15FactoryImpl();
	}

	/**
	 * Creates an instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UMASchema15FactoryImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public EObject create(EClass eClass) {
		switch (eClass.getClassifierID()) {
			case UMASchema15Package.ACTIVITY: return createActivity();
			case UMASchema15Package.ACTIVITY_DESCRIPTION: return createActivityDescription();
			case UMASchema15Package.APPLICABLE_META_CLASS_INFO: return createApplicableMetaClassInfo();
			case UMASchema15Package.ARTIFACT: return createArtifact();
			case UMASchema15Package.ARTIFACT_DESCRIPTION: return createArtifactDescription();
			case UMASchema15Package.BREAKDOWN_ELEMENT: return createBreakdownElement();
			case UMASchema15Package.BREAKDOWN_ELEMENT_DESCRIPTION: return createBreakdownElementDescription();
			case UMASchema15Package.CAPABILITY_PATTERN: return createCapabilityPattern();
			case UMASchema15Package.CHECKLIST: return createChecklist();
			case UMASchema15Package.COMPOSITE_ROLE: return createCompositeRole();
			case UMASchema15Package.CONCEPT: return createConcept();
			case UMASchema15Package.CONSTRAINT: return createConstraint();
			case UMASchema15Package.CONTENT_CATEGORY: return createContentCategory();
			case UMASchema15Package.CONTENT_CATEGORY_PACKAGE: return createContentCategoryPackage();
			case UMASchema15Package.CONTENT_DESCRIPTION: return createContentDescription();
			case UMASchema15Package.CONTENT_ELEMENT: return createContentElement();
			case UMASchema15Package.CONTENT_PACKAGE: return createContentPackage();
			case UMASchema15Package.CUSTOM_CATEGORY: return createCustomCategory();
			case UMASchema15Package.DELIVERABLE: return createDeliverable();
			case UMASchema15Package.DELIVERABLE_DESCRIPTION: return createDeliverableDescription();
			case UMASchema15Package.DELIVERY_PROCESS: return createDeliveryProcess();
			case UMASchema15Package.DELIVERY_PROCESS_DESCRIPTION: return createDeliveryProcessDescription();
			case UMASchema15Package.DESCRIBABLE_ELEMENT: return createDescribableElement();
			case UMASchema15Package.DESCRIPTOR: return createDescriptor();
			case UMASchema15Package.DESCRIPTOR_DESCRIPTION: return createDescriptorDescription();
			case UMASchema15Package.DISCIPLINE: return createDiscipline();
			case UMASchema15Package.DISCIPLINE_GROUPING: return createDisciplineGrouping();
			case UMASchema15Package.DOCUMENT_ROOT: return createDocumentRoot();
			case UMASchema15Package.DOMAIN: return createDomain();
			case UMASchema15Package.ELEMENT: return createElement();
			case UMASchema15Package.ESTIMATE: return createEstimate();
			case UMASchema15Package.ESTIMATING_METRIC: return createEstimatingMetric();
			case UMASchema15Package.ESTIMATION_CONSIDERATIONS: return createEstimationConsiderations();
			case UMASchema15Package.EXAMPLE: return createExample();
			case UMASchema15Package.GUIDANCE: return createGuidance();
			case UMASchema15Package.GUIDANCE_DESCRIPTION: return createGuidanceDescription();
			case UMASchema15Package.GUIDELINE: return createGuideline();
			case UMASchema15Package.ITERATION: return createIteration();
			case UMASchema15Package.KIND: return createKind();
			case UMASchema15Package.METHOD_CONFIGURATION: return createMethodConfiguration();
			case UMASchema15Package.METHOD_ELEMENT: return createMethodElement();
			case UMASchema15Package.METHOD_ELEMENT_PROPERTY: return createMethodElementProperty();
			case UMASchema15Package.METHOD_LIBRARY: return createMethodLibrary();
			case UMASchema15Package.METHOD_PACKAGE: return createMethodPackage();
			case UMASchema15Package.METHOD_PLUGIN: return createMethodPlugin();
			case UMASchema15Package.METHOD_UNIT: return createMethodUnit();
			case UMASchema15Package.MILESTONE: return createMilestone();
			case UMASchema15Package.NAMED_ELEMENT: return createNamedElement();
			case UMASchema15Package.OUTCOME: return createOutcome();
			case UMASchema15Package.PACKAGEABLE_ELEMENT: return createPackageableElement();
			case UMASchema15Package.PHASE: return createPhase();
			case UMASchema15Package.PLANNING_DATA: return createPlanningData();
			case UMASchema15Package.PRACTICE: return createPractice();
			case UMASchema15Package.PRACTICE_DESCRIPTION: return createPracticeDescription();
			case UMASchema15Package.PROCESS: return createProcess();
			case UMASchema15Package.PROCESS_COMPONENT: return createProcessComponent();
			case UMASchema15Package.PROCESS_COMPONENT_INTERFACE: return createProcessComponentInterface();
			case UMASchema15Package.PROCESS_DESCRIPTION: return createProcessDescription();
			case UMASchema15Package.PROCESS_ELEMENT: return createProcessElement();
			case UMASchema15Package.PROCESS_PACKAGE: return createProcessPackage();
			case UMASchema15Package.PROCESS_PLANNING_TEMPLATE: return createProcessPlanningTemplate();
			case UMASchema15Package.REPORT: return createReport();
			case UMASchema15Package.REUSABLE_ASSET: return createReusableAsset();
			case UMASchema15Package.ROADMAP: return createRoadmap();
			case UMASchema15Package.ROLE: return createRole();
			case UMASchema15Package.ROLE_DESCRIPTION: return createRoleDescription();
			case UMASchema15Package.ROLE_DESCRIPTOR: return createRoleDescriptor();
			case UMASchema15Package.ROLE_SET: return createRoleSet();
			case UMASchema15Package.ROLE_SET_GROUPING: return createRoleSetGrouping();
			case UMASchema15Package.SECTION: return createSection();
			case UMASchema15Package.SUPPORTING_MATERIAL: return createSupportingMaterial();
			case UMASchema15Package.TASK: return createTask();
			case UMASchema15Package.TASK_DESCRIPTION: return createTaskDescription();
			case UMASchema15Package.TASK_DESCRIPTOR: return createTaskDescriptor();
			case UMASchema15Package.TEAM_PROFILE: return createTeamProfile();
			case UMASchema15Package.TEMPLATE: return createTemplate();
			case UMASchema15Package.TERM_DEFINITION: return createTermDefinition();
			case UMASchema15Package.TOOL: return createTool();
			case UMASchema15Package.TOOL_MENTOR: return createToolMentor();
			case UMASchema15Package.WHITEPAPER: return createWhitepaper();
			case UMASchema15Package.WORK_BREAKDOWN_ELEMENT: return createWorkBreakdownElement();
			case UMASchema15Package.WORK_DEFINITION: return createWorkDefinition();
			case UMASchema15Package.WORK_ORDER: return createWorkOrder();
			case UMASchema15Package.WORK_PRODUCT: return createWorkProduct();
			case UMASchema15Package.WORK_PRODUCT_DESCRIPTION: return createWorkProductDescription();
			case UMASchema15Package.WORK_PRODUCT_DESCRIPTOR: return createWorkProductDescriptor();
			case UMASchema15Package.WORK_PRODUCT_TYPE: return createWorkProductType();
			default:
				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object createFromString(EDataType eDataType, String initialValue) {
		switch (eDataType.getClassifierID()) {
			case UMASchema15Package.VARIABILITY_TYPE:
				return createVariabilityTypeFromString(eDataType, initialValue);
			case UMASchema15Package.WORK_ORDER_TYPE:
				return createWorkOrderTypeFromString(eDataType, initialValue);
			case UMASchema15Package.VARIABILITY_TYPE_OBJECT:
				return createVariabilityTypeObjectFromString(eDataType, initialValue);
			case UMASchema15Package.WORK_ORDER_TYPE_OBJECT:
				return createWorkOrderTypeObjectFromString(eDataType, initialValue);
			default:
				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String convertToString(EDataType eDataType, Object instanceValue) {
		switch (eDataType.getClassifierID()) {
			case UMASchema15Package.VARIABILITY_TYPE:
				return convertVariabilityTypeToString(eDataType, instanceValue);
			case UMASchema15Package.WORK_ORDER_TYPE:
				return convertWorkOrderTypeToString(eDataType, instanceValue);
			case UMASchema15Package.VARIABILITY_TYPE_OBJECT:
				return convertVariabilityTypeObjectToString(eDataType, instanceValue);
			case UMASchema15Package.WORK_ORDER_TYPE_OBJECT:
				return convertWorkOrderTypeObjectToString(eDataType, instanceValue);
			default:
				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Activity createActivity() {
		ActivityImpl activity = new ActivityImpl();
		return activity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ActivityDescription createActivityDescription() {
		ActivityDescriptionImpl activityDescription = new ActivityDescriptionImpl();
		return activityDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ApplicableMetaClassInfo createApplicableMetaClassInfo() {
		ApplicableMetaClassInfoImpl applicableMetaClassInfo = new ApplicableMetaClassInfoImpl();
		return applicableMetaClassInfo;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Artifact createArtifact() {
		ArtifactImpl artifact = new ArtifactImpl();
		return artifact;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ArtifactDescription createArtifactDescription() {
		ArtifactDescriptionImpl artifactDescription = new ArtifactDescriptionImpl();
		return artifactDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public BreakdownElement createBreakdownElement() {
		BreakdownElementImpl breakdownElement = new BreakdownElementImpl();
		return breakdownElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public BreakdownElementDescription createBreakdownElementDescription() {
		BreakdownElementDescriptionImpl breakdownElementDescription = new BreakdownElementDescriptionImpl();
		return breakdownElementDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CapabilityPattern createCapabilityPattern() {
		CapabilityPatternImpl capabilityPattern = new CapabilityPatternImpl();
		return capabilityPattern;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Checklist createChecklist() {
		ChecklistImpl checklist = new ChecklistImpl();
		return checklist;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CompositeRole createCompositeRole() {
		CompositeRoleImpl compositeRole = new CompositeRoleImpl();
		return compositeRole;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Concept createConcept() {
		ConceptImpl concept = new ConceptImpl();
		return concept;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Constraint createConstraint() {
		ConstraintImpl constraint = new ConstraintImpl();
		return constraint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ContentCategory createContentCategory() {
		ContentCategoryImpl contentCategory = new ContentCategoryImpl();
		return contentCategory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ContentCategoryPackage createContentCategoryPackage() {
		ContentCategoryPackageImpl contentCategoryPackage = new ContentCategoryPackageImpl();
		return contentCategoryPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ContentDescription createContentDescription() {
		ContentDescriptionImpl contentDescription = new ContentDescriptionImpl();
		return contentDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ContentElement createContentElement() {
		ContentElementImpl contentElement = new ContentElementImpl();
		return contentElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ContentPackage createContentPackage() {
		ContentPackageImpl contentPackage = new ContentPackageImpl();
		return contentPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CustomCategory createCustomCategory() {
		CustomCategoryImpl customCategory = new CustomCategoryImpl();
		return customCategory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Deliverable createDeliverable() {
		DeliverableImpl deliverable = new DeliverableImpl();
		return deliverable;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DeliverableDescription createDeliverableDescription() {
		DeliverableDescriptionImpl deliverableDescription = new DeliverableDescriptionImpl();
		return deliverableDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DeliveryProcess createDeliveryProcess() {
		DeliveryProcessImpl deliveryProcess = new DeliveryProcessImpl();
		return deliveryProcess;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DeliveryProcessDescription createDeliveryProcessDescription() {
		DeliveryProcessDescriptionImpl deliveryProcessDescription = new DeliveryProcessDescriptionImpl();
		return deliveryProcessDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DescribableElement createDescribableElement() {
		DescribableElementImpl describableElement = new DescribableElementImpl();
		return describableElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Descriptor createDescriptor() {
		DescriptorImpl descriptor = new DescriptorImpl();
		return descriptor;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DescriptorDescription createDescriptorDescription() {
		DescriptorDescriptionImpl descriptorDescription = new DescriptorDescriptionImpl();
		return descriptorDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Discipline createDiscipline() {
		DisciplineImpl discipline = new DisciplineImpl();
		return discipline;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DisciplineGrouping createDisciplineGrouping() {
		DisciplineGroupingImpl disciplineGrouping = new DisciplineGroupingImpl();
		return disciplineGrouping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DocumentRoot createDocumentRoot() {
		DocumentRootImpl documentRoot = new DocumentRootImpl();
		return documentRoot;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Domain createDomain() {
		DomainImpl domain = new DomainImpl();
		return domain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Element createElement() {
		ElementImpl element = new ElementImpl();
		return element;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Estimate createEstimate() {
		EstimateImpl estimate = new EstimateImpl();
		return estimate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EstimatingMetric createEstimatingMetric() {
		EstimatingMetricImpl estimatingMetric = new EstimatingMetricImpl();
		return estimatingMetric;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EstimationConsiderations createEstimationConsiderations() {
		EstimationConsiderationsImpl estimationConsiderations = new EstimationConsiderationsImpl();
		return estimationConsiderations;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Example createExample() {
		ExampleImpl example = new ExampleImpl();
		return example;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Guidance createGuidance() {
		GuidanceImpl guidance = new GuidanceImpl();
		return guidance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public GuidanceDescription createGuidanceDescription() {
		GuidanceDescriptionImpl guidanceDescription = new GuidanceDescriptionImpl();
		return guidanceDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Guideline createGuideline() {
		GuidelineImpl guideline = new GuidelineImpl();
		return guideline;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Iteration createIteration() {
		IterationImpl iteration = new IterationImpl();
		return iteration;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Kind createKind() {
		KindImpl kind = new KindImpl();
		return kind;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodConfiguration createMethodConfiguration() {
		MethodConfigurationImpl methodConfiguration = new MethodConfigurationImpl();
		return methodConfiguration;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodElement createMethodElement() {
		MethodElementImpl methodElement = new MethodElementImpl();
		return methodElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodElementProperty createMethodElementProperty() {
		MethodElementPropertyImpl methodElementProperty = new MethodElementPropertyImpl();
		return methodElementProperty;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodLibrary createMethodLibrary() {
		MethodLibraryImpl methodLibrary = new MethodLibraryImpl();
		return methodLibrary;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodPackage createMethodPackage() {
		MethodPackageImpl methodPackage = new MethodPackageImpl();
		return methodPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodPlugin createMethodPlugin() {
		MethodPluginImpl methodPlugin = new MethodPluginImpl();
		return methodPlugin;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MethodUnit createMethodUnit() {
		MethodUnitImpl methodUnit = new MethodUnitImpl();
		return methodUnit;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Milestone createMilestone() {
		MilestoneImpl milestone = new MilestoneImpl();
		return milestone;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NamedElement createNamedElement() {
		NamedElementImpl namedElement = new NamedElementImpl();
		return namedElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Outcome createOutcome() {
		OutcomeImpl outcome = new OutcomeImpl();
		return outcome;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PackageableElement createPackageableElement() {
		PackageableElementImpl packageableElement = new PackageableElementImpl();
		return packageableElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Phase createPhase() {
		PhaseImpl phase = new PhaseImpl();
		return phase;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PlanningData createPlanningData() {
		PlanningDataImpl planningData = new PlanningDataImpl();
		return planningData;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Practice createPractice() {
		PracticeImpl practice = new PracticeImpl();
		return practice;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PracticeDescription createPracticeDescription() {
		PracticeDescriptionImpl practiceDescription = new PracticeDescriptionImpl();
		return practiceDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UMASchema15.Process createProcess() {
		ProcessImpl process = new ProcessImpl();
		return process;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessComponent createProcessComponent() {
		ProcessComponentImpl processComponent = new ProcessComponentImpl();
		return processComponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessComponentInterface createProcessComponentInterface() {
		ProcessComponentInterfaceImpl processComponentInterface = new ProcessComponentInterfaceImpl();
		return processComponentInterface;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessDescription createProcessDescription() {
		ProcessDescriptionImpl processDescription = new ProcessDescriptionImpl();
		return processDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessElement createProcessElement() {
		ProcessElementImpl processElement = new ProcessElementImpl();
		return processElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessPackage createProcessPackage() {
		ProcessPackageImpl processPackage = new ProcessPackageImpl();
		return processPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProcessPlanningTemplate createProcessPlanningTemplate() {
		ProcessPlanningTemplateImpl processPlanningTemplate = new ProcessPlanningTemplateImpl();
		return processPlanningTemplate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Report createReport() {
		ReportImpl report = new ReportImpl();
		return report;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ReusableAsset createReusableAsset() {
		ReusableAssetImpl reusableAsset = new ReusableAssetImpl();
		return reusableAsset;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Roadmap createRoadmap() {
		RoadmapImpl roadmap = new RoadmapImpl();
		return roadmap;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Role createRole() {
		RoleImpl role = new RoleImpl();
		return role;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RoleDescription createRoleDescription() {
		RoleDescriptionImpl roleDescription = new RoleDescriptionImpl();
		return roleDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RoleDescriptor createRoleDescriptor() {
		RoleDescriptorImpl roleDescriptor = new RoleDescriptorImpl();
		return roleDescriptor;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RoleSet createRoleSet() {
		RoleSetImpl roleSet = new RoleSetImpl();
		return roleSet;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RoleSetGrouping createRoleSetGrouping() {
		RoleSetGroupingImpl roleSetGrouping = new RoleSetGroupingImpl();
		return roleSetGrouping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Section createSection() {
		SectionImpl section = new SectionImpl();
		return section;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SupportingMaterial createSupportingMaterial() {
		SupportingMaterialImpl supportingMaterial = new SupportingMaterialImpl();
		return supportingMaterial;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Task createTask() {
		TaskImpl task = new TaskImpl();
		return task;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TaskDescription createTaskDescription() {
		TaskDescriptionImpl taskDescription = new TaskDescriptionImpl();
		return taskDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TaskDescriptor createTaskDescriptor() {
		TaskDescriptorImpl taskDescriptor = new TaskDescriptorImpl();
		return taskDescriptor;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TeamProfile createTeamProfile() {
		TeamProfileImpl teamProfile = new TeamProfileImpl();
		return teamProfile;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Template createTemplate() {
		TemplateImpl template = new TemplateImpl();
		return template;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TermDefinition createTermDefinition() {
		TermDefinitionImpl termDefinition = new TermDefinitionImpl();
		return termDefinition;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Tool createTool() {
		ToolImpl tool = new ToolImpl();
		return tool;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ToolMentor createToolMentor() {
		ToolMentorImpl toolMentor = new ToolMentorImpl();
		return toolMentor;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Whitepaper createWhitepaper() {
		WhitepaperImpl whitepaper = new WhitepaperImpl();
		return whitepaper;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkBreakdownElement createWorkBreakdownElement() {
		WorkBreakdownElementImpl workBreakdownElement = new WorkBreakdownElementImpl();
		return workBreakdownElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkDefinition createWorkDefinition() {
		WorkDefinitionImpl workDefinition = new WorkDefinitionImpl();
		return workDefinition;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkOrder createWorkOrder() {
		WorkOrderImpl workOrder = new WorkOrderImpl();
		return workOrder;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkProduct createWorkProduct() {
		WorkProductImpl workProduct = new WorkProductImpl();
		return workProduct;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkProductDescription createWorkProductDescription() {
		WorkProductDescriptionImpl workProductDescription = new WorkProductDescriptionImpl();
		return workProductDescription;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkProductDescriptor createWorkProductDescriptor() {
		WorkProductDescriptorImpl workProductDescriptor = new WorkProductDescriptorImpl();
		return workProductDescriptor;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkProductType createWorkProductType() {
		WorkProductTypeImpl workProductType = new WorkProductTypeImpl();
		return workProductType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public VariabilityType createVariabilityTypeFromString(EDataType eDataType, String initialValue) {
		VariabilityType result = VariabilityType.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertVariabilityTypeToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkOrderType createWorkOrderTypeFromString(EDataType eDataType, String initialValue) {
		WorkOrderType result = WorkOrderType.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertWorkOrderTypeToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public VariabilityType createVariabilityTypeObjectFromString(EDataType eDataType, String initialValue) {
		return createVariabilityTypeFromString(UMASchema15Package.Literals.VARIABILITY_TYPE, initialValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertVariabilityTypeObjectToString(EDataType eDataType, Object instanceValue) {
		return convertVariabilityTypeToString(UMASchema15Package.Literals.VARIABILITY_TYPE, instanceValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkOrderType createWorkOrderTypeObjectFromString(EDataType eDataType, String initialValue) {
		return createWorkOrderTypeFromString(UMASchema15Package.Literals.WORK_ORDER_TYPE, initialValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertWorkOrderTypeObjectToString(EDataType eDataType, Object instanceValue) {
		return convertWorkOrderTypeToString(UMASchema15Package.Literals.WORK_ORDER_TYPE, instanceValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UMASchema15Package getUMASchema15Package() {
		return (UMASchema15Package)getEPackage();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @deprecated
	 * @generated
	 */
	@Deprecated
	public static UMASchema15Package getPackage() {
		return UMASchema15Package.eINSTANCE;
	}

} //UMASchema15FactoryImpl
